package ord2.indexer;

import java.io.File;
/**
 * Specifies indexer operations.
 *
 * @author José Ivan
 * @author Edviges
 *
 */
public interface Indexer {

    /**
     * Removes a document from this indexer.
     * @param doc Document to remove.
     * @return true on success or false otherwise.
     */
    boolean removeDocument(File doc);
    
    /**
     * Adds a document to indexer
     * @param doc Documento to be added.
     * @return true on success or false otherwise
     */
    boolean addDocument(File doc);
    
    /**
     * Gets all files that is used by this indexer.
     * @return Array containg all document files
     */
    File[] getAllDocuments();
    
    /**
     * Process index operation to all documents in this indexer.
     * @return true if index process was started or false otherwise
     */
    boolean processDocuments();
    
    /**
     * Verifies if a index operation is being executed.
     * @return true if has a index operation false otherwise
     */
    boolean isProcessing();
}
